package com.cmict.data.system.service.encode;

import com.cmict.data.system.controller.admin.encode.vo.EncodeDetailsCreateReqVO;
import com.cmict.data.system.controller.admin.encode.vo.EncodeDetailsReqVO;
import com.cmict.data.system.dal.dataobject.encode.EncodeDetailsDO;

import java.util.List;

public interface EncodeDetailsService {
    /**
     * 创建编码详情数据
     *
     * @param reqVO 编码详情数据信息
     * @return 编码详情数据编号
     */
    Long createEncodeDetailsData(EncodeDetailsCreateReqVO reqVO);

    /**
     * 批量创建编码详情数据
     *
     * @param list 编码详情数据信息集合
     */
    void createEncodeDetailsDataBatch(List<EncodeDetailsDO> list);

    /**
     * 更新编码详情数据
     *
     * @param reqVO 编码详情数据信息
     */
    void updateEncodeDetailsData(EncodeDetailsCreateReqVO reqVO);

    /**
     * 删除编码详情
     *
     * @param id 编码详情数据编号
     */
    void deleteEncodeDetailsData(Long id);

    /**
     * 批量删除编码详情
     *
     * @param ids 编码详情数据编号
     */
    void batchdeleteEncodeDetails(List<Long> ids);

    /**
     * 获得编码详情数据列表
     *
     * @param reqVO 请求
     * @return 编码详情数据列表
     */
    List<EncodeDetailsDO> getDictEncodeDetailsList(EncodeDetailsReqVO reqVO);

    /**
     * 获得编码详情数据详情
     *
     * @param id 编码详情数据编号
     * @return 编码详情数据
     */
    EncodeDetailsDO getEncodeDetailsData(Long id);

    List<EncodeDetailsDO> selectList(Long id);
}
